package com.ruoyi.product.service;

import java.util.List;

import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.product.domain.TbProd;
import com.ruoyi.product.domain.TbProdAtta;
import com.ruoyi.product.domain.TbProdInfo;

/**
 * 商品列表Service接口
 * 
 * @author ruoyi
 * @date 2025-08-05
 */
public interface ITbProdService 
{
    /**
     * 查询商品列表
     * 
     * @param prodId 商品列表主键
     * @return 商品列表
     */
    public TbProd selectTbProdByProdId(Integer prodId);

    /**
     * 查询商品列表列表
     * 
     * @param tbProd 商品列表
     * @return 商品列表集合
     */
    public List<TbProd> selectTbProdList(TbProd tbProd);

    /**
     * 新增商品列表
     * 
     * @param tbProd 商品列表
     * @return 结果
     */
    public int insertTbProd(TbProd tbProd);

    /**
     * 修改商品列表
     * 
     * @param tbProd 商品列表
     * @return 结果
     */
    public int updateTbProd(TbProd tbProd);

    /**
     * 批量删除商品列表
     * 
     * @param prodIds 需要删除的商品列表主键集合
     * @return 结果
     */
    public int deleteTbProdByProdIds(Integer[] prodIds);

    /**
     * 删除商品列表信息
     * 
     * @param prodId 商品列表主键
     * @return 结果
     */
    public int deleteTbProdByProdId(Integer prodId);

    AjaxResult addProdAtta(TbProdAtta prodAtta);


    List<TbProdInfo> getProdInfo(TbProdInfo prodInfo);

    AjaxResult addProdInfo(TbProdInfo prodInfo);

    AjaxResult createIndexEs();

    AjaxResult syncProdIndex();

    TableDataInfo getProdListByEs(TbProd tbProd, Integer pageNum, Integer pageSize);
}
